class DesenvolvedoresController < ApplicationController
  def index
    list
    render :action => 'list'
  end
  
  # GETs should be safe (see http://www.w3.org/2001/tag/doc/whenToUseGet.html)
  verify :method => :post, :only => [ :destroy, :create, :update ],
  :redirect_to => { :action => :list }
  
  def list
    @desenvolvedores_pages, @desenvolvedores = paginate :desenvolvedors, :per_page => 10, :conditions => "role_id = '5'"
  end

  
  def home
    sql = "SELECT r.id, r.descricao, r.created_at, r.estado
          FROM desenvolvedores_requisicoes c, requisicoes r, goldberg_users gu
          where gu.id = c.desenvolvedor_id
          and c.requisicao_id = r.id
          and gu.id = #{Goldberg.user.id}
          and (r.estado = 'escaladaParaDesenvolvedor' 
          or r.estado = 'desenvolvimentoSuspenso' 
          or r.estado = 'emDesenvolvimento')"
          
     @requisicao_pages, @requisicoes = paginate_by_sql(Requisicao, sql, 7)
   end
   
   def ultimas_req
     sql = "SELECT r.id, r.descricao, r.created_at, r.estado
          FROM desenvolvedores_requisicoes c, requisicoes r, goldberg_users gu
          where gu.id = c.desenvolvedor_id
          and c.requisicao_id = r.id
          and gu.id = #{Goldberg.user.id} 
          order by r.created_at desc"
     @requisicao_pages, @requisicoes = paginate_by_sql(Requisicao, sql, 7)
   end
  
  def new
    @desenvolvedores = Desenvolvedor.new
  end
  
  def show
    @desenvolvedores = Desenvolvedor.find(params[:id])
  end
  def show_req
    @desenvolvedores = Desenvolvedor.find(params[:id])
    @requisicao = Requisicao.find(params[:id])
    @events = filtra_eventos(@requisicao.next_events_for_current_state)
  end    
  def create
    @desenvolvedores = Goldberg::User.new(params[:desenvolvedores])
    @desenvolvedores.role_id='5' #role id dos desenvolvedor = 5
    if @desenvolvedores.save
      flash[:notice] = 'Desenvolvedor was successfully created.'
      redirect_to :action => 'list'
    else
      render :action => 'new'
    end
  end
  
  def edit
    @tecnologias = Tecnologia.find(:all, :order => "descricao")
    @desenvolvedores = Desenvolvedor.find(params[:id])
  end
  
  def update
    @desenvolvedores = Desenvolvedor.find(params[:id])
    if !params[:desenvolvedores]
      @desenvolvedores.tecnologias.clear
      flash[:notice] = 'Desenvolvedor was successfully updated.'
      redirect_to :action => 'show', :id => @desenvolvedores
    else
      if @desenvolvedores.update_attributes(params[:desenvolvedores])
        flash[:notice] = 'Desenvolvedor was successfully updated.'
        redirect_to :action => 'show', :id => @desenvolvedores
      else
        render :action => 'edit'
      end
    end
    
  end
  def iniciarDesenvolvimento
    historico = Historico.new
    historico.attributes = params[:historico]
    @requisicao = Requisicao.find(historico.requisicao_id)
    @requisicao.iniciarDesenvolvimento!
    historico.usuario_id = Goldberg.user.id
    historico.estado = @requisicao.estado
    @requisicao.historicos << historico    
    flash[:notice] = 'Operação realizada com sucesso.'    
    case Goldberg.user.role_id
    when 5 then
      redirect_to :action => 'home'
    when 14 then
      redirect_to :controller => 'pool',  :action => 'home'
    end
  end 
  
  def suspenderDesenvolvimento
    historico = Historico.new
    historico.attributes = params[:historico]
    @requisicao = Requisicao.find(historico.requisicao_id)
    @requisicao.suspenderDesenvolvimento!
    historico.usuario_id = Goldberg.user.id
    historico.estado = @requisicao.estado
    @requisicao.historicos << historico    
    flash[:notice] = 'Operação realizada com sucesso.'        
    case Goldberg.user.role_id
    when 5 then
      redirect_to :action => 'home'
    when 14 then
      redirect_to :controller => 'pool',  :action => 'home'
    end
  end   
  
  def concluirDesenvolvimento
    historico = Historico.new
    historico.attributes = params[:historico]
    @requisicao = Requisicao.find(historico.requisicao_id)
    @requisicao.concluirDesenvolvimento!
    historico.usuario_id = Goldberg.user.id
    historico.estado = @requisicao.estado
    @requisicao.historicos << historico    
    flash[:notice] = 'Operação realizada com sucesso.'        
    case Goldberg.user.role_id
    when 5 then
      redirect_to :action => 'home'
    when 14 then
      redirect_to :controller => 'pool',  :action => 'home'
    end
  end 
  
end
 
#<% Tecnologia.find(:all).each do |g| %>
#   <input type="checkbox" name="desenvolvedores[tecnologia_ids][]" 
#          value="<%= g.id %>" 
#          <% if @desenvolvedores.tecnologias.include?(g) %> checked="checked" <% end %> />
#<%= g.descricao %>
#<% end %>

